package com.star.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.star.security.user.Users;
import com.star.system.dto.UserPageDTO;
import com.star.system.entity.User;
import com.star.system.vo.LoginInfoVO;
import com.star.system.vo.UserPageVO;
import org.apache.ibatis.annotations.Param;

/**
 * 用户 Mapper 接口
 *
 * @author yangzj
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 获取通过用户名
     *
     * @param username 用户名
     * @param type     类型
     * @return {@link Users}
     */
    Users getByUsername(@Param("username") String username, @Param("type") Integer type);

    /**
     * 获取通过打开身份证件
     *
     * @param openId 打开id
     * @return {@link Users}
     */
    Users getByOpenId(@Param("openId") String openId);

    /**
     * 分页
     *
     * @param page page
     * @return {@link IPage}<{@link UserPageVO}>
     */
    IPage<UserPageVO> page(@Param("page") UserPageDTO page);

    /**
     * 获取微信小程序用户
     *
     * @param id id
     * @return {@link LoginInfoVO}
     */
    LoginInfoVO getLoginInfo(@Param("id") Long id);

}
